package mx.com.theboard.client;

import mx.com.theboard.client.InterfacesServlets.CreaPizarron;
import mx.com.theboard.client.InterfacesServlets.CreaPizarronAsync;
import mx.com.theboard.client.controllers.PizarronController;
import mx.com.theboard.client.menu.Menu;
import mx.com.theboard.client.registro.RegistoVentana;
import mx.com.theboard.shared.entidades.Pizarron;
import mx.com.theboard.shared.entidades.Usuario;

import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.DialogBox;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.HasHorizontalAlignment;
import com.google.gwt.user.client.ui.HasVerticalAlignment;
import com.google.gwt.user.client.ui.ValueBoxBase.TextAlignment;
import com.google.gwt.user.client.ui.PasswordTextBox;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.DecoratorPanel;
import com.google.gwt.user.client.ui.AbsolutePanel;
import com.google.gwt.user.client.ui.Widget;

public class Main implements EntryPoint {
	
	private static Login login;
	private static RegistoVentana registro;
	
	public void onModuleLoad() {
		final RootPanel rootPanel = RootPanel.get();
		rootPanel.setStyleName("root");
		rootPanel.setSize("100%", "100%");
		login = new Login();
		rootPanel.add(login,68,53);
		
		registro = new RegistoVentana();
		rootPanel.add(registro,500,53);
		 
		
	}
	
	public static void clean(){
		login.removeFromParent();
		registro.removeFromParent();
		RootPanel rootPanel = RootPanel.get();		
		for(int i =0; i<rootPanel.getWidgetCount();i++){
			rootPanel.remove(0);
		}
		
	}
	
	public static void initApplication(Usuario usuario, Pizarron pizarron){
		Main.clean();		
		Menu menu = new Menu(usuario,pizarron);
		RootPanel rootPanel = RootPanel.get();			
		rootPanel.add(menu, 0,0);
	}
	
	public static void getPizarron(final Usuario usuario){
		CreaPizarronAsync creapizarron = GWT.create(CreaPizarron.class);
		creapizarron.greetServer(usuario, new AsyncCallback<Pizarron>() {
			
			@Override
			public void onSuccess(Pizarron result) {
				Main.initApplication(usuario, result);	
				PizarronController pc = new PizarronController(result);
				pc.loadNotas();						
			}
			
			@Override
			public void onFailure(Throwable caught) {
				Mensaje db = new Mensaje("Error","No se pudo crear theBoard!");
				db.setModal(true);
				db.center();				
				db.show();				
			}
		});
	}

	
}
